Bazat e protokollit HTTP
Hypertext Transfer Protocol (HTTP) eshte nje protokoll ne shtresen e aplikacioneve per sistemet e shperndara. Ai eshte themeli per komunikimin dhe shkembimin e te dhenave per World Wide Web (ose internet) qe nga viti 1990. HTTP është një protokoll i përgjithshëm dhe pa shtetësi, i cili mund të përdoret për qëllime të ndryshme duke përdorur metodat e kërkesës (GET, POST, PUT ...), kodet e gabimeve (404, 503, 403 ...), dhe headers. Ne komunikimet e ndryshme ne web, duke perdorur HTTP dergohen nje sere te dhenash te cilat do t'i listojme me poshte:
Versioni HTTP
HTTP perdor skemen <major>.<minor>
per te paraqitur versionin e protokollit mbi te cilin kryhet komunikimi. Versioni i HTTP vendoset ne rreshtin e pare p.sh. HTTP/1.0
ose HTTP/1.1
URI (Uniform Resource Identifiers)
URI eshte nje stringe (tekst) e formatuar qe permban emrin, vendin, etj. per te identifikuar nje burim, p.sh. nje websajt, nje web servis, etj. Nje sintakse baze e URI qe perdor HTTP eshte paraqitur me poshte:
URI = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
Ku host
permban emrin e domeinit, port
eshte nje numer i portes ne server ku ne mund te marrim pergjigje dhe ne rast se nuk e shenojme porten, merret porta e parazgjedhur 80
. abs_path
eshte pathi absolut i burimit qe kerkojme ne server. Ne rast se e leme bosh atehere pathi absoluti merret i barabarte me /
. query
perfshin parametra te tjere te vendosur pas simbolit ?
ne URL.
HTTP bazohet në modelin e arkitekturës klient-server dhe eshte një protokoll kërkesë/përgjigje që vepron duke shkëmbyer mesazhe nëpër një lidhje të besueshme TCP/IP.
Një "klient" HTTP është një program (Web browser ose ndonjë klient tjetër) që krijon një lidhje me një server për qëllime të dërgimit të një ose më shumë mesazhe "kerkese" HTTP. Një "server" HTTP është një program (në përgjithësi një web-server si Apache Web Server ose Internet Information Services IIS, etj.) që pranon lidhjet në mënyrë që të shërbejë kërkesave HTTP duke dërguar mesazhe "përgjigje" HTTP. HTTP perdor Uniform Resource Identifier (URI) për të identifikuar një burim të caktuar dhe për të krijuar një konjeksion me serverin. Pasi behet lidhja ndermjet klientit dhe serverit ndermjet tyre shkembehen mesazhe HTTP. Këto mesazhe përfshijnë kërkesa nga klienti në server dhe përgjigjet nga serveri tek klienti. Keto mesazhe permbajne versionin e HTTP, disa fusha te tipit "header" qe permbajne informacione shtese rreth kerkeses ose pergjigjes respektivisht. Ne mesazh ndodhet edhe trupi (body
) qe eshte opsional. Ne trupin e kerkeses gjendet p.sh. kodi HTML, CSS apo dhe te dhenat e futura nga perdoruesi ne nje forme HTML kur dergohen ne server etj.
Nje permbajtje e trupit te kerkeses p.sh. mund te jete si aq e thjeshte sa me poshte:
<html>
<body>
<h1>Pershendetje Shqiperi!</h1>
</body>
</html>
Metodat e Kerkesave
Metoda e kerkeses tregon metodën që do të kryhet mbi burimin e identifikuar nga URL e kerkuar. Metoda është case-sensitive dhe duhet gjithmonë të jete në uppercase. Me poshtme listohen metodat kryesore te mbështetura në HTTP / 1.1.
GET
Metoda GET perdoret për të tërhequr informacion nga nje server i caktuar duke përdorur një URL te dhënë. Keto lloj kerkesash thjesht duhet te marrin te dhena dhe nuk duhet te afektojne asnje te dhene.
POST
Një kërkesë POST perdoret për të dërguar të dhënat në server, p.sh. informacion të klienteve, ngarkim fotografish, etj. duke përdorur format e HTML.
PUT
Zevendeson te gjitha perfaqesimet aktuale te burimeve me permbajtjen e ngarkuar, pra ben modifikim te burimeve respektive te kerkuara nga perdoruesi.
DELETE
Fshin te gjitha perfaqesimet aktuale te burimeve te specifikuara nga URI.
OPTIONS
Pershkruan opsionet e komunikimit per burimin objektiv.
Kodet e statusit te pergjigjes
Kodi i statusit është një numër i plotë 3-shifror, ku shifra e parë e kodit përcakton klasën e përgjigjes dhe dy shifrat e fundit nuk kanë ndonjë rol të kategorizimit. Ka 5 vlera për shifra e parë:
1xx: Informational
Do te thote qe kerkesa mberriti dhe perpunimi vazhdon.
2xx: Success
Do te thote veprimi mberriti me sukses, u kuptua, and u pranua.
3xx: Redirection
Do te thote qe veprime shtese duhet te ndermerren qe te perfundohet kerkesa.
4xx: Client Error
Do te thote qe kerkesa permban sintakse jo te sakte ose nuk mund te permbushet.
5xx: Server Error
Do te thote qe serveri deshtoi te permbushe nje kerkese qe duket e vlefshme.
P.sh. kodi 404 do te thote qe faqja e kerkuar nuk u gjet ne server, 401 do te thote kerkese e pa autorizuar, 501 do te thote gabim i brendshem ne server etj.